Diagrama de Clases (Relaciones, Agregación)

Resumen

La agregación es una forma especial de asociación en UML que representa una relación "todo-parte" entre clases, donde la parte puede existir independientemente del todo. Es útil para modelar estructuras jerárquicas y colecciones de objetos, manteniendo una semántica de débil acoplamiento entre los participantes (OMG, 2017; Rumbaugh et al., 2007).

1. Definición

La asociación por agregación indica que una clase (el "todo" o agregador) está compuesta por una o varias instancias de otra clase (la "parte"), pero la existencia de las partes no depende de la existencia del todo. Si el todo se destruye, las partes pueden seguir existiendo independientemente.

2. Notación y Sintaxis

Figura
Ejemplo de una Relación de Asociación por Agregación

uml diagram

Nota: En este ejemplo, un Departamento puede contener varios Empleado, pero los empleados pueden existir aunque el departamento se elimine.

3. Características Clave

4. Ejemplo con Roles y Multiplicidad

Figura
Ejemplo de una Relación de Asociación por Agregación de un Equipo de Fútbol

uml diagram

Nota: Un Equipo tiene entre 1 y 11 Jugador, pero un jugador puede existir fuera de un equipo.

5. Buenas Prácticas

Diagrama de Clases (Relaciones, Composición)

Resumen

La composición es una forma estricta de agregación que representa una relación "todo-parte" con dependencia vital. Las partes no pueden existir independientemente del todo y son destruidas cuando éste se elimina (OMG, 2017; Rumbaugh et al., 2007).

1. Definición

La composición indica una relación "parte-de" más fuerte entre clases. Una clase (el "todo" o composite) contiene una o varias instancias de otra clase (la "parte"), y la existencia de las partes depende completamente de la existencia del todo. Si el todo se destruye, las partes también se destruyen simultáneamente. En otras palabras:

  • El todo (clase compuesta) posee exclusivamente las partes
  • Las partes tienen el mismo ciclo de vida que el todo
  • La destrucción del todo implica la destrucción de todas sus partes

2. Notación y Sintaxis

  • Se representa como una línea continua con un rombo pintado o relleno en el extremo del "todo"
  • El rombo apunta hacia la clase composite.
  • Se pueden especificar multiplicidades y roles en ambos extremos.

Figura
_Ejemplo de una Relación de Asociación por Composición

uml diagram

Nota: Cada Auto tiene exactamente un Motor y es exclusivo del mismo.

3. Características Clave

  • Dependencia vital: Las partes no tienen significado fuera del contexto del todo (ejemplo: un Motor sin el Auto).
  • Multiplicidad: El todo suele tener multiplicidad 1 (cada parte pertenece a un todo).
  • Encapsulación fuerte: Las partes son accesibles solo a través del todo (Booch et al., 2006).

4. Ejemplo con Roles y Multiplicidad

Figura
Ejemplo de una Relación de Asociación por Agregación de un Equipo de Fútbol

uml diagram

Nota: Un Equipo tiene entre 1 y 11 Jugador, pero un jugador puede existir fuera de un equipo.

5. Buenas Prácticas

  • Utilizar composición solo cuando la relación "todo-parte" sea relevante en el dominio.
  • No abusar de la composición; en muchos casos, una asociación simple es suficiente.
  • Documentar claramente el significado de la relación en el contexto del modelo.
  • Usar composición cuando las partes no tengan identidad independiente (ejemplo: párrafos en un documento).

6. Diferencias entre Composición y Agregación

Composición Agregación
Rombo relleno Rombo vacío
Partes no sobreviven al todo Partes pueden existir independientemente
Propiedad exclusiva Propiedad compartida
Ejemplo: Auto-Motor Ejemplo: Departamento-Empleado